home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JInternalFrame.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  15.7 KB  |  718 lines

  1. package javax.swing;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.BorderLayout;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.EventQueue;
  8. import java.awt.Graphics;
  9. import java.awt.LayoutManager;
  10. import java.awt.MenuComponent;
  11. import java.beans.PropertyVetoException;
  12. import java.io.IOException;
  13. import java.io.ObjectOutputStream;
  14. import java.util.EventObject;
  15. import javax.accessibility.Accessible;
  16. import javax.accessibility.AccessibleContext;
  17. import javax.swing.event.InternalFrameEvent;
  18. import javax.swing.event.InternalFrameListener;
  19. import javax.swing.plaf.InternalFrameUI;
  20.  
  21. public class JInternalFrame extends JComponent implements Accessible, WindowConstants, RootPaneContainer {
  22.    private static final String uiClassID = "InternalFrameUI";
  23.    protected JRootPane rootPane;
  24.    protected boolean rootPaneCheckingEnabled;
  25.    protected boolean closable;
  26.    protected boolean isClosed;
  27.    protected boolean maximizable;
  28.    protected boolean isMaximum;
  29.    protected boolean iconable;
  30.    protected boolean isIcon;
  31.    protected boolean resizable;
  32.    protected boolean isSelected;
  33.    protected Icon frameIcon;
  34.    protected String title;
  35.    protected JDesktopIcon desktopIcon;
  36.    private boolean opened;
  37.    private int defaultCloseOperation;
  38.    public static final String CONTENT_PANE_PROPERTY = "contentPane";
  39.    public static final String MENU_BAR_PROPERTY = "menuBar";
  40.    public static final String TITLE_PROPERTY = "title";
  41.    public static final String LAYERED_PANE_PROPERTY = "layeredPane";
  42.    public static final String ROOT_PANE_PROPERTY = "rootPane";
  43.    public static final String GLASS_PANE_PROPERTY = "glassPane";
  44.    public static final String FRAME_ICON_PROPERTY = "frameIcon";
  45.    public static final String IS_SELECTED_PROPERTY = "selected";
  46.    public static final String IS_CLOSED_PROPERTY = "closed";
  47.    public static final String IS_MAXIMUM_PROPERTY = "maximum";
  48.    public static final String IS_ICON_PROPERTY = "icon";
  49.    boolean isDragging;
  50.    boolean danger;
  51.    // $FF: synthetic field
  52.    static Class class$javax$swing$event$InternalFrameListener;
  53.  
  54.    public JInternalFrame() {
  55.       this("", false, false, false, false);
  56.    }
  57.  
  58.    public JInternalFrame(String var1) {
  59.       this(var1, false, false, false, false);
  60.    }
  61.  
  62.    public JInternalFrame(String var1, boolean var2) {
  63.       this(var1, var2, false, false, false);
  64.    }
  65.  
  66.    public JInternalFrame(String var1, boolean var2, boolean var3) {
  67.       this(var1, var2, var3, false, false);
  68.    }
  69.  
  70.    public JInternalFrame(String var1, boolean var2, boolean var3, boolean var4) {
  71.       this(var1, var2, var3, var4, false);
  72.    }
  73.  
  74.    public JInternalFrame(String var1, boolean var2, boolean var3, boolean var4, boolean var5) {
  75.       this.rootPaneCheckingEnabled = false;
  76.       this.defaultCloseOperation = 1;
  77.       this.isDragging = false;
  78.       this.danger = false;
  79.       this.setRootPane(this.createRootPane());
  80.       this.setLayout(new BorderLayout());
  81.       this.title = var1;
  82.       this.resizable = var2;
  83.       this.closable = var3;
  84.       this.maximizable = var4;
  85.       this.isMaximum = false;
  86.       this.iconable = var5;
  87.       this.isIcon = false;
  88.       this.setRootPaneCheckingEnabled(true);
  89.       this.desktopIcon = new JDesktopIcon(this);
  90.       this.updateUI();
  91.    }
  92.  
  93.    protected void addImpl(Component var1, Object var2, int var3) {
  94.       if (this.isRootPaneCheckingEnabled()) {
  95.          throw this.createRootPaneException("add");
  96.       } else {
  97.          super.addImpl(var1, var2, var3);
  98.       }
  99.    }
  100.  
  101.    public void addInternalFrameListener(InternalFrameListener var1) {
  102.       super.listenerList.add(class$javax$swing$event$InternalFrameListener != null ? class$javax$swing$event$InternalFrameListener : (class$javax$swing$event$InternalFrameListener = class$("javax.swing.event.InternalFrameListener")), var1);
  103.       ((Component)this).enableEvents(0L);
  104.    }
  105.  
  106.    // $FF: synthetic method
  107.    static Class class$(String var0) {
  108.       try {
  109.          return Class.forName(var0);
  110.       } catch (ClassNotFoundException var2) {
  111.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  112.       }
  113.    }
  114.  
  115.    protected JRootPane createRootPane() {
  116.       return new JRootPane();
  117.    }
  118.  
  119.    private Error createRootPaneException(String var1) {
  120.       String var2 = this.getClass().getName();
  121.       return new Error("Do not use " + var2 + "." + var1 + "() use " + var2 + ".getContentPane()." + var1 + "() instead");
  122.    }
  123.  
  124.    public void dispose() {
  125.       if (((Component)this).isVisible()) {
  126.          this.setVisible(false);
  127.       }
  128.  
  129.       if (this.isSelected()) {
  130.          try {
  131.             this.setSelected(false);
  132.          } catch (PropertyVetoException var1) {
  133.          }
  134.       }
  135.  
  136.       if (!this.isClosed) {
  137.          this.fireInternalFrameEvent(25551);
  138.       }
  139.  
  140.    }
  141.  
  142.    private void doDefaultCloseAction() {
  143.       switch (this.defaultCloseOperation) {
  144.          case 0:
  145.          default:
  146.             break;
  147.          case 1:
  148.             try {
  149.                this.setClosed(true);
  150.             } catch (PropertyVetoException var2) {
  151.             }
  152.             break;
  153.          case 2:
  154.             try {
  155.                this.setClosed(true);
  156.                this.dispose();
  157.             } catch (PropertyVetoException var1) {
  158.             }
  159.             break;
  160.          case 3:
  161.             System.exit(0);
  162.       }
  163.  
  164.    }
  165.  
  166.    protected void fireInternalFrameEvent(int var1) {
  167.       Object[] var2 = super.listenerList.getListenerList();
  168.       InternalFrameEvent var3 = null;
  169.  
  170.       for(int var4 = var2.length - 2; var4 >= 0; var4 -= 2) {
  171.          if (var2[var4] == (class$javax$swing$event$InternalFrameListener != null ? class$javax$swing$event$InternalFrameListener : (class$javax$swing$event$InternalFrameListener = class$("javax.swing.event.InternalFrameListener")))) {
  172.             if (var3 == null) {
  173.                var3 = new InternalFrameEvent(this, var1);
  174.             }
  175.  
  176.             switch (((AWTEvent)var3).getID()) {
  177.                case 25549:
  178.                   ((InternalFrameListener)var2[var4 + 1]).internalFrameOpened(var3);
  179.                   break;
  180.                case 25550:
  181.                   ((InternalFrameListener)var2[var4 + 1]).internalFrameClosing(var3);
  182.                   break;
  183.                case 25551:
  184.                   ((InternalFrameListener)var2[var4 + 1]).internalFrameClosed(var3);
  185.                   break;
  186.                case 25552:
  187.                   ((InternalFrameListener)var2[var4 + 1]).internalFrameIconified(var3);
  188.                   break;
  189.                case 25553:
  190.                   ((InternalFrameListener)var2[var4 + 1]).internalFrameDeiconified(var3);
  191.                   break;
  192.                case 25554:
  193.                   ((InternalFrameListener)var2[var4 + 1]).internalFrameActivated(var3);
  194.                   break;
  195.                case 25555:
  196.                   ((InternalFrameListener)var2[var4 + 1]).internalFrameDeactivated(var3);
  197.             }
  198.          }
  199.       }
  200.  
  201.       if (var1 == 25550) {
  202.          this.doDefaultCloseAction();
  203.       }
  204.  
  205.    }
  206.  
  207.    public AccessibleContext getAccessibleContext() {
  208.       if (super.accessibleContext == null) {
  209.          super.accessibleContext = new AccessibleJInternalFrame(this);
  210.       }
  211.  
  212.       return super.accessibleContext;
  213.    }
  214.  
  215.    public Container getContentPane() {
  216.       return this.getRootPane().getContentPane();
  217.    }
  218.  
  219.    public int getDefaultCloseOperation() {
  220.       return this.defaultCloseOperation;
  221.    }
  222.  
  223.    public JDesktopIcon getDesktopIcon() {
  224.       return this.desktopIcon;
  225.    }
  226.  
  227.    public JDesktopPane getDesktopPane() {
  228.       Container var1;
  229.       for(var1 = ((Component)this).getParent(); var1 != null && !(var1 instanceof JDesktopPane); var1 = ((Component)var1).getParent()) {
  230.       }
  231.  
  232.       if (var1 == null) {
  233.          for(var1 = this.getDesktopIcon().getParent(); var1 != null && !(var1 instanceof JDesktopPane); var1 = ((Component)var1).getParent()) {
  234.          }
  235.       }
  236.  
  237.       return (JDesktopPane)var1;
  238.    }
  239.  
  240.    public Icon getFrameIcon() {
  241.       return this.frameIcon;
  242.    }
  243.  
  244.    public Component getGlassPane() {
  245.       return this.getRootPane().getGlassPane();
  246.    }
  247.  
  248.    public JMenuBar getJMenuBar() {
  249.       return this.getRootPane().getJMenuBar();
  250.    }
  251.  
  252.    public int getLayer() {
  253.       return JLayeredPane.getLayer(this);
  254.    }
  255.  
  256.    public JLayeredPane getLayeredPane() {
  257.       return this.getRootPane().getLayeredPane();
  258.    }
  259.  
  260.    /** @deprecated */
  261.    public JMenuBar getMenuBar() {
  262.       return this.getRootPane().getMenuBar();
  263.    }
  264.  
  265.    public JRootPane getRootPane() {
  266.       return this.rootPane;
  267.    }
  268.  
  269.    public String getTitle() {
  270.       return this.title;
  271.    }
  272.  
  273.    public InternalFrameUI getUI() {
  274.       return (InternalFrameUI)super.ui;
  275.    }
  276.  
  277.    public String getUIClassID() {
  278.       return "InternalFrameUI";
  279.    }
  280.  
  281.    public final String getWarningString() {
  282.       return null;
  283.    }
  284.  
  285.    public boolean isClosable() {
  286.       return this.closable;
  287.    }
  288.  
  289.    public boolean isClosed() {
  290.       return this.isClosed;
  291.    }
  292.  
  293.    public boolean isIcon() {
  294.       return this.isIcon;
  295.    }
  296.  
  297.    public boolean isIconifiable() {
  298.       return this.iconable;
  299.    }
  300.  
  301.    public boolean isMaximizable() {
  302.       return this.maximizable;
  303.    }
  304.  
  305.    public boolean isMaximum() {
  306.       return this.isMaximum;
  307.    }
  308.  
  309.    public boolean isResizable() {
  310.       return this.isMaximum ? false : this.resizable;
  311.    }
  312.  
  313.    protected boolean isRootPaneCheckingEnabled() {
  314.       return this.rootPaneCheckingEnabled;
  315.    }
  316.  
  317.    public boolean isSelected() {
  318.       return this.isSelected;
  319.    }
  320.  
  321.    public void moveToBack() {
  322.       if (((Component)this).getParent() != null && ((Component)this).getParent() instanceof JLayeredPane) {
  323.          JLayeredPane var1 = (JLayeredPane)((Component)this).getParent();
  324.          var1.moveToBack(this);
  325.       }
  326.  
  327.    }
  328.  
  329.    public void moveToFront() {
  330.       if (((Component)this).getParent() != null && ((Component)this).getParent() instanceof JLayeredPane) {
  331.          JLayeredPane var1 = (JLayeredPane)((Component)this).getParent();
  332.          var1.moveToFront(this);
  333.       }
  334.  
  335.    }
  336.  
  337.    public void pack() {
  338.       Container var1 = ((Component)this).getParent();
  339.       if (var1 != null && ((Component)var1).getPeer() == null) {
  340.          var1.addNotify();
  341.          ((JComponent)this).addNotify();
  342.       }
  343.  
  344.       ((Component)this).setSize(((JComponent)this).getPreferredSize());
  345.       ((Container)this).validate();
  346.    }
  347.  
  348.    protected void paintComponent(Graphics var1) {
  349.       if (this.isDragging) {
  350.          this.danger = true;
  351.       }
  352.  
  353.       super.paintComponent(var1);
  354.    }
  355.  
  356.    protected String paramString() {
  357.       String var1 = this.rootPane != null ? this.rootPane.toString() : "";
  358.       String var2 = this.rootPaneCheckingEnabled ? "true" : "false";
  359.       String var3 = this.closable ? "true" : "false";
  360.       String var4 = this.isClosed ? "true" : "false";
  361.       String var5 = this.maximizable ? "true" : "false";
  362.       String var6 = this.isMaximum ? "true" : "false";
  363.       String var7 = this.iconable ? "true" : "false";
  364.       String var8 = this.isIcon ? "true" : "false";
  365.       String var9 = this.resizable ? "true" : "false";
  366.       String var10 = this.isSelected ? "true" : "false";
  367.       String var11 = this.frameIcon != null ? this.frameIcon.toString() : "";
  368.       String var12 = this.title != null ? this.title : "";
  369.       String var13 = this.desktopIcon != null ? this.desktopIcon.toString() : "";
  370.       String var14 = this.opened ? "true" : "false";
  371.       String var15;
  372.       if (this.defaultCloseOperation == 1) {
  373.          var15 = "HIDE_ON_CLOSE";
  374.       } else if (this.defaultCloseOperation == 2) {
  375.          var15 = "DISPOSE_ON_CLOSE";
  376.       } else if (this.defaultCloseOperation == 0) {
  377.          var15 = "DO_NOTHING_ON_CLOSE";
  378.       } else if (this.defaultCloseOperation == 3) {
  379.          var15 = "EXIT_ON_CLOSE";
  380.       } else {
  381.          var15 = "";
  382.       }
  383.  
  384.       return super.paramString() + ",closable=" + var3 + ",defaultCloseOperation=" + var15 + ",desktopIcon=" + var13 + ",frameIcon=" + var11 + ",iconable=" + var7 + ",isClosed=" + var4 + ",isIcon=" + var8 + ",isMaximum=" + var6 + ",isSelected=" + var10 + ",maximizable=" + var5 + ",opened=" + var14 + ",resizable=" + var9 + ",rootPane=" + var1 + ",rootPaneCheckingEnabled=" + var2 + ",title=" + var12;
  385.    }
  386.  
  387.    public void remove(Component var1) {
  388.       int var2 = ((Container)this).getComponentCount();
  389.       super.remove(var1);
  390.       if (var2 == ((Container)this).getComponentCount()) {
  391.          this.getContentPane().remove(var1);
  392.       }
  393.  
  394.    }
  395.  
  396.    public void removeInternalFrameListener(InternalFrameListener var1) {
  397.       super.listenerList.remove(class$javax$swing$event$InternalFrameListener != null ? class$javax$swing$event$InternalFrameListener : (class$javax$swing$event$InternalFrameListener = class$("javax.swing.event.InternalFrameListener")), var1);
  398.    }
  399.  
  400.    public void reshape(int var1, int var2, int var3, int var4) {
  401.       super.reshape(var1, var2, var3, var4);
  402.       ((Container)this).validate();
  403.       ((Component)this).repaint();
  404.    }
  405.  
  406.    public void setClosable(boolean var1) {
  407.       Boolean var2 = this.closable ? Boolean.TRUE : Boolean.FALSE;
  408.       Boolean var3 = var1 ? Boolean.TRUE : Boolean.FALSE;
  409.       this.closable = var1;
  410.       ((JComponent)this).firePropertyChange("closable", var2, var3);
  411.    }
  412.  
  413.    public void setClosed(boolean var1) throws PropertyVetoException {
  414.       if (this.isClosed != var1) {
  415.          Boolean var2 = this.isClosed ? Boolean.TRUE : Boolean.FALSE;
  416.          Boolean var3 = var1 ? Boolean.TRUE : Boolean.FALSE;
  417.          ((JComponent)this).fireVetoableChange("closed", var2, var3);
  418.          this.isClosed = var1;
  419.          if (this.isClosed) {
  420.             this.fireInternalFrameEvent(25550);
  421.             this.fireInternalFrameEvent(25551);
  422.             this.opened = false;
  423.          } else if (!this.opened) {
  424.             this.fireInternalFrameEvent(25549);
  425.             this.opened = true;
  426.          }
  427.  
  428.          ((JComponent)this).firePropertyChange("closed", var2, var3);
  429.       }
  430.    }
  431.  
  432.    public void setContentPane(Container var1) {
  433.       Container var2 = this.getContentPane();
  434.       this.getRootPane().setContentPane(var1);
  435.       ((JComponent)this).firePropertyChange("contentPane", var2, var1);
  436.    }
  437.  
  438.    public void setDefaultCloseOperation(int var1) {
  439.       this.defaultCloseOperation = var1;
  440.    }
  441.  
  442.    public void setDesktopIcon(JDesktopIcon var1) {
  443.       JDesktopIcon var2 = this.getDesktopIcon();
  444.       this.desktopIcon = var1;
  445.       ((JComponent)this).firePropertyChange("desktopIcon", var2, var1);
  446.    }
  447.  
  448.    public void setFrameIcon(Icon var1) {
  449.       Icon var2 = this.frameIcon;
  450.       this.frameIcon = var1;
  451.       ((JComponent)this).firePropertyChange("frameIcon", var2, var1);
  452.    }
  453.  
  454.    public void setGlassPane(Component var1) {
  455.       Component var2 = this.getGlassPane();
  456.       this.getRootPane().setGlassPane(var1);
  457.       ((JComponent)this).firePropertyChange("glassPane", var2, var1);
  458.    }
  459.  
  460.    public void setIcon(boolean var1) throws PropertyVetoException {
  461.       if (this.isIcon != var1) {
  462.          Boolean var2 = this.isIcon ? Boolean.TRUE : Boolean.FALSE;
  463.          Boolean var3 = var1 ? Boolean.TRUE : Boolean.FALSE;
  464.          ((JComponent)this).fireVetoableChange("icon", var2, var3);
  465.          this.isIcon = var1;
  466.          ((JComponent)this).firePropertyChange("icon", var2, var3);
  467.          if (var1) {
  468.             this.fireInternalFrameEvent(25552);
  469.          } else {
  470.             this.fireInternalFrameEvent(25553);
  471.          }
  472.  
  473.       }
  474.    }
  475.  
  476.    public void setIconifiable(boolean var1) {
  477.       this.iconable = var1;
  478.    }
  479.  
  480.    public void setJMenuBar(JMenuBar var1) {
  481.       JMenuBar var2 = this.getMenuBar();
  482.       this.getRootPane().setJMenuBar(var1);
  483.       ((JComponent)this).firePropertyChange("menuBar", var2, var1);
  484.    }
  485.  
  486.    public void setLayer(Integer var1) {
  487.       if (((Component)this).getParent() != null && ((Component)this).getParent() instanceof JLayeredPane) {
  488.          JLayeredPane var2 = (JLayeredPane)((Component)this).getParent();
  489.          var2.setLayer(this, var1, var2.getPosition(this));
  490.       } else {
  491.          JLayeredPane.putLayer(this, var1);
  492.          if (((Component)this).getParent() != null) {
  493.             ((Component)this).getParent().repaint(super._bounds.x, super._bounds.y, super._bounds.width, super._bounds.height);
  494.          }
  495.       }
  496.  
  497.    }
  498.  
  499.    public void setLayeredPane(JLayeredPane var1) {
  500.       JLayeredPane var2 = this.getLayeredPane();
  501.       this.getRootPane().setLayeredPane(var1);
  502.       ((JComponent)this).firePropertyChange("layeredPane", var2, var1);
  503.    }
  504.  
  505.    public void setLayout(LayoutManager var1) {
  506.       if (this.isRootPaneCheckingEnabled()) {
  507.          throw this.createRootPaneException("setLayout");
  508.       } else {
  509.          super.setLayout(var1);
  510.       }
  511.    }
  512.  
  513.    public void setMaximizable(boolean var1) {
  514.       Boolean var2 = this.maximizable ? Boolean.TRUE : Boolean.FALSE;
  515.       Boolean var3 = var1 ? Boolean.TRUE : Boolean.FALSE;
  516.       this.maximizable = var1;
  517.       ((JComponent)this).firePropertyChange("maximizable", var2, var3);
  518.    }
  519.  
  520.    public void setMaximum(boolean var1) throws PropertyVetoException {
  521.       if (this.isMaximum != var1) {
  522.          Boolean var2 = this.isMaximum ? Boolean.TRUE : Boolean.FALSE;
  523.          Boolean var3 = var1 ? Boolean.TRUE : Boolean.FALSE;
  524.          ((JComponent)this).fireVetoableChange("maximum", var2, var3);
  525.          this.isMaximum = var1;
  526.          ((JComponent)this).firePropertyChange("maximum", var2, var3);
  527.       }
  528.    }
  529.  
  530.    /** @deprecated */
  531.    public void setMenuBar(JMenuBar var1) {
  532.       JMenuBar var2 = this.getMenuBar();
  533.       this.getRootPane().setJMenuBar(var1);
  534.       ((JComponent)this).firePropertyChange("menuBar", var2, var1);
  535.    }
  536.  
  537.    public void setResizable(boolean var1) {
  538.       Boolean var2 = this.resizable ? Boolean.TRUE : Boolean.FALSE;
  539.       Boolean var3 = var1 ? Boolean.TRUE : Boolean.FALSE;
  540.       this.resizable = var1;
  541.       ((JComponent)this).firePropertyChange("resizable", var2, var3);
  542.    }
  543.  
  544.    protected void setRootPane(JRootPane var1) {
  545.       if (this.rootPane != null) {
  546.          this.remove(this.rootPane);
  547.       }
  548.  
  549.       JRootPane var2 = this.getRootPane();
  550.       this.rootPane = var1;
  551.       if (this.rootPane != null) {
  552.          boolean var3 = this.isRootPaneCheckingEnabled();
  553.  
  554.          try {
  555.             this.setRootPaneCheckingEnabled(false);
  556.             ((Container)this).add(this.rootPane, "Center");
  557.          } finally {
  558.             this.setRootPaneCheckingEnabled(var3);
  559.          }
  560.       }
  561.  
  562.       ((JComponent)this).firePropertyChange("rootPane", var2, var1);
  563.    }
  564.  
  565.    protected void setRootPaneCheckingEnabled(boolean var1) {
  566.       this.rootPaneCheckingEnabled = var1;
  567.    }
  568.  
  569.    public void setSelected(boolean var1) throws PropertyVetoException {
  570.       if (this.isSelected != var1) {
  571.          Boolean var2 = this.isSelected ? Boolean.TRUE : Boolean.FALSE;
  572.          Boolean var3 = var1 ? Boolean.TRUE : Boolean.FALSE;
  573.          ((JComponent)this).fireVetoableChange("selected", var2, var3);
  574.          this.isSelected = var1;
  575.          ((JComponent)this).firePropertyChange("selected", var2, var3);
  576.          if (this.isSelected) {
  577.             this.fireInternalFrameEvent(25554);
  578.          } else {
  579.             this.fireInternalFrameEvent(25555);
  580.          }
  581.  
  582.          ((Component)this).repaint();
  583.       }
  584.    }
  585.  
  586.    public void setTitle(String var1) {
  587.       String var2 = this.title;
  588.       this.title = var1;
  589.       ((JComponent)this).firePropertyChange("title", var2, var1);
  590.    }
  591.  
  592.    public void setUI(InternalFrameUI var1) {
  593.       boolean var2 = this.isRootPaneCheckingEnabled();
  594.  
  595.       try {
  596.          this.setRootPaneCheckingEnabled(false);
  597.          super.setUI(var1);
  598.       } finally {
  599.          this.setRootPaneCheckingEnabled(var2);
  600.       }
  601.  
  602.    }
  603.  
  604.    public void setVisible(boolean var1) {
  605.       super.setVisible(var1);
  606.    }
  607.  
  608.    public void show() {
  609.       Container var1 = ((Component)this).getParent();
  610.       if (var1 != null && ((Component)var1).getPeer() == null) {
  611.          var1.addNotify();
  612.          ((JComponent)this).addNotify();
  613.       }
  614.  
  615.       ((Container)this).validate();
  616.       if (!this.opened) {
  617.          this.fireInternalFrameEvent(25549);
  618.          this.opened = true;
  619.       }
  620.  
  621.       if (((Component)this).isVisible()) {
  622.          this.toFront();
  623.       } else {
  624.          super.show();
  625.       }
  626.  
  627.       if (!this.isSelected()) {
  628.          try {
  629.             this.setSelected(true);
  630.          } catch (PropertyVetoException var2) {
  631.          }
  632.       }
  633.  
  634.    }
  635.  
  636.    synchronized void startModal() {
  637.       if (((Component)this).isVisible() && !((Component)this).isShowing()) {
  638.          for(Container var1 = ((Component)this).getParent(); var1 != null; var1 = ((Component)var1).getParent()) {
  639.             if (!((Component)var1).isVisible()) {
  640.                ((Component)var1).setVisible(true);
  641.             }
  642.          }
  643.       }
  644.  
  645.       try {
  646.          if (SwingUtilities.isEventDispatchThread()) {
  647.             EventQueue var5 = ((Component)this).getToolkit().getSystemEventQueue();
  648.  
  649.             while(((Component)this).isVisible()) {
  650.                AWTEvent var2 = var5.getNextEvent();
  651.                Object var3 = ((EventObject)var2).getSource();
  652.                if (var3 instanceof Component) {
  653.                   ((Component)var3).dispatchEvent(var2);
  654.                } else if (var3 instanceof MenuComponent) {
  655.                   ((MenuComponent)var3).dispatchEvent(var2);
  656.                } else {
  657.                   System.err.println("unable to dispatch event: " + var2);
  658.                }
  659.             }
  660.          } else {
  661.             while(((Component)this).isVisible()) {
  662.                this.wait();
  663.             }
  664.          }
  665.       } catch (InterruptedException var4) {
  666.       }
  667.  
  668.    }
  669.  
  670.    synchronized void stopModal() {
  671.       this.notifyAll();
  672.    }
  673.  
  674.    public void toBack() {
  675.       this.moveToBack();
  676.    }
  677.  
  678.    public void toFront() {
  679.       this.moveToFront();
  680.    }
  681.  
  682.    public void updateUI() {
  683.       this.setUI((InternalFrameUI)UIManager.getUI(this));
  684.       ((Container)this).invalidate();
  685.       if (this.desktopIcon != null) {
  686.          this.desktopIcon.updateUIWhenHidden();
  687.       }
  688.  
  689.    }
  690.  
  691.    void updateUIWhenHidden() {
  692.       this.setUI((InternalFrameUI)UIManager.getUI(this));
  693.       ((Container)this).invalidate();
  694.       Component[] var1 = ((Container)this).getComponents();
  695.       if (var1 != null) {
  696.          for(int var2 = 0; var2 < var1.length; ++var2) {
  697.             SwingUtilities.updateComponentTreeUI(var1[var2]);
  698.          }
  699.       }
  700.  
  701.    }
  702.  
  703.    private void writeObject(ObjectOutputStream var1) throws IOException {
  704.       var1.defaultWriteObject();
  705.       if (super.ui != null && this.getUIClassID().equals("InternalFrameUI")) {
  706.          boolean var2 = this.isRootPaneCheckingEnabled();
  707.  
  708.          try {
  709.             this.setRootPaneCheckingEnabled(false);
  710.             super.ui.installUI(this);
  711.          } finally {
  712.             this.setRootPaneCheckingEnabled(var2);
  713.          }
  714.       }
  715.  
  716.    }
  717. }
  718.